package com.mwh.yuantu.dao;

import java.util.List;
import java.util.Map;

import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.mwh.yuantu.dao.mapper.ApiInfoMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.mwh.yuantu.entity.ApiInfoEntity;

/**
 * (ApiInfo)表数据库访问层
 *
 * @author maweihong
 * @since 2023-11-01 09:47:29
 */
@Service
public class ApiInfoDao extends ServiceImpl<ApiInfoMapper , ApiInfoEntity> {

    @Autowired
	private ApiInfoMapper apiInfoMapper;


    /**
     * 查询指定类型的接口列表
     * @param type 接口类型
     * @return
     */
    public List<ApiInfoEntity> listByType(Map<String , Object> map){
        return apiInfoMapper.listByType(map);
    }
    /**
     * 插入新的接口
     */
    public int insert(ApiInfoEntity apiInfo){
        return apiInfoMapper.insert(apiInfo);
    }

    /**
     * 更新接口
     */
    public int update(ApiInfoEntity apiInfo){
        return apiInfoMapper.update(apiInfo);
    }


    /**
     * 批量删除接口
     * @param idArr 主键数组
     * @return
     */
    public int delete(@Param("idArr") String[] idArr){
        return apiInfoMapper.delete(idArr);
    }

    /**
     * 根据主键，获取接口设置条件
     * @param id 主键
     * @return
     */
    public Map<String, Object> selectById(String id){
        return apiInfoMapper.selectById(id);
    }

    /**
     * 用自定义SQL文更新
     * @param alterSql
     */
    public int updateSQL(@Param("alterSql") String alterSql){
        return apiInfoMapper.updateSQL(alterSql);
    }

    /**
     * 判断字段有没有被接口使用
     * @param field
     * @return
     */
    public int countByField(@Param("field") String field){
        return apiInfoMapper.countByField(field);
    }

    /**
     * 向接口表中添加字段
     * @param alterSql
     */
    public void alter(@Param("alterSql") String alterSql){
        apiInfoMapper.alter(alterSql);
    }

    /**
     * 保存排行榜条件设置
     * @param apiInfo
     * @return
     */
    public int updateRankSet(ApiInfoEntity apiInfo){
        return apiInfoMapper.updateRankSet(apiInfo);
    }

}

